package com.wjw.config;

import com.wjw.interceptor.BookInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
//在配置类上使用 @Import 注解引入一个 .class 文件时，你实际上是在告诉Spring容器在启动时创建并注册这个类的实例（例如，一个拦截器）
//Spring容器在启动时创建并注册了一个BookInterceptor实例
@Import(BookInterceptor.class)
public class WebConfiguration implements WebMvcConfigurer {

    @Autowired//将创建好的实例注入到配置类中
    private BookInterceptor bookInterceptor;

    //addInterceptors方法的作用是向Spring MVC的拦截器链中添加一个或多个拦截器
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(bookInterceptor)
                //设置需要拦截的请求
                .addPathPatterns("/book/b01")
                //设置不需要拦截的请求
                .excludePathPatterns("book/b02");
    }
}
